﻿using FlexFlow.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FlexFlow.Base.Interface
{
    /// <summary>
    /// 表示通知实体工厂
    /// </summary>
    public interface INotificationProvider : IPhysicalEntityProvider<Notification>
    {
        /// <summary>
        /// 取得指定目录中从指定日期开始的消息数量
        /// </summary>
        /// <param name="catalog">
        /// 消息目录ID
        /// </param>
        /// <param name="fromDate">
        /// 消息开始日期
        /// </param>
        /// <returns>
        /// 消息数量
        /// </returns>
        int Count(Guid catalog, DateTime fromDate);
        /// <summary>
        /// 取得指定用户指定日期后的通知列表
        /// </summary>
        /// <param name="uid">
        /// 用户ID
        /// </param>
        /// <param name="fromDate">
        /// 通知起始日期
        /// </param>
        /// <returns>
        /// 取得的通知列表
        /// </returns>
        List<Notification> Get(Guid uid, DateTime fromDate);
    }
}
